If this is a first time you visiting Scrolls, please register in Fight Club. If you already registered, please authorize on Fight Club start page with your login and password.
04-05-07 @ 23:10 Alex Nomad Начинающим клановым программистам. Часть I.
Итак, вы решили снабдить свой клановый сайт полезными сервисами. Лучше бросьте это занятие! В околоБКшном мире полно самых разных сервисов, которые повторяют друг друга как однояйцовые близнецы. Но при все продолжают плодиться сервисы-копии...
Если мои предыдущие слова не убедили, то тогда эта статья для вас. Я попробую кратко описать свой опыт написания сервисов для моего любимого клана. Здесь будут отражены только мои личные знания, мнения и умения. Никакого кода я приводить не буду – сами пишите. Но на начальном этапе я надеюсь смогу вам помочь.
Для начала попробуйте уяснить следующие моменты.
1. Никто не заинтересуется вашим сервисом, если он не отличается существенной (!) оригинальностью. И Сталкеры не опубликуют новость “У клана XXX появилась сто первая карта торговца”. Вам нужна ИДЕЯ! Напрягите всех в своем клане на этот счет. В качестве примера приведу наш Анализатор. Уж сколько этих анализаторов написано, но мы сумели пробиться. Благодаря тому, что сделали анализатор для хаотов, в том числе для невидимых боев и для любого количества участников.
2. Детально продумайте дизайн своего сервиса, в первую очередь удобство использования. Все действия должны выполняться минимальным количеством кликов мыши. Пользователь не должен теряться в догадках, что и как ему сделать - не поленитесь снабдить сервис расширенными комментариями для «тупиц». Очень рекомендую вам для начала нарисовать внешний вид своего сервиса на бумаге, снабдив кнопки и ссылки описаниями их действий. Как правило, на выполнение этого пункта у меня уходит почти половина всего времени, а может больше. Но только так можно сделать сервис, который найдет своих постоянных пользователей.
3. После того, как вы убеждены, что все отлично, то можно приступать к рисованию HTML кода сервиса. Мне больше импонирует FrontPage, но это дело вкуса. Прорисуйте весь сервис, запрограммируйте все java-скрипты. Вам наверняка понадобится руководство по DHTML. Если в клане нет дизайнера, то составление стилей, рисование картинок, кнопочек и прочее тоже ляжет на вас. А что делать!
4. Теперь осталось написать основной код, об этом мы будем говорить дальше. Вообще-то Perl более эффективный язык, но я использую PHP, поскольку в клане его выбрали до меня. При составлении кода постарайтесь придерживаться следующих правил: - не делайте объем загружаемой страницы слишком большой, пожалейте трафик пользователей; - не перегружайте сервак лишними вычислениями; продумайте доступ к базе данных.
5. Сервис готов! Теперь протестируйте его с сокланерами. Чем хуже они владеют компьютером, тем лучше. Чем больше вопросов об использовании они вам будут задавать, тем сильнее вы должны подумать о комментариях и пояснениях в сервисе. Да и сами время не теряйте – проверьте «защиту от дурака», а именно делайте в сервисе все неправильно, наверняка много ошибок выскочит. Подойдите к тестированию со всей ответственностью, это дело не одного дня, иногда и недели не хватает.
6. А вы не забыли о тех поддержке? У пользователей Вашего сервиса могут возникать вопросы, замечания, сообщения об ошибках – они должны иметь возможность высказаться. Прикрепите к сервису ссылочку, только не на форум, где они должны регистрироваться! Не утруждайте пользователей делать лишние движения, они народ ленивый, пусть пишут под «гостями». Эта обратная связь вам это окупится многократно.
7. Пиар, - последний немаловажный этап. Если вам удалось заинтересовать Сталкеров – флаг вам в руки. В противном случае придется работать с людьми индивидуально – через глашатаев, знакомых, в комнатах новичков…
Мораль закончена. Приступим к изложению материала о программировании. Как правило, все БКшные сервисы получают из БК, обрабатывают и выдают в удобном виде некоторую информацию. Будь-то карта торговца, анализатор или какой-нибудь монитор. Чаще всего сложности начинают возникать уже на этапе получения информации.
В БК вся информация передается с помощью HTML-страниц, т.е. вы должны отправить на сервер какого-либо города http-запрос, в ответ получите некоторый текст, из которого надо выудить необходимые данные.
Все страницы БК делятся на два класса: - открытые - закрытые
Открытые страницы – это страницы, которые можно открыть, не входя в БК. Например, к ним относятся информация о персонаже, лог битвы и некоторые другие. Список известных мне открытых страниц БК приведен далее. К закрытым страницам относятся все остальные страницы. Их вы так просто не откроете, тут нужна регистрация, а значит необходимо использовать клановых ботов. Вот вам и пример: http://angelscity.combats.ru/shop.pl?otdel1=1
Следует отдельно заметить, что для уменьшения нагрузки на сервера БК админы придумали прикольную вещь под названием «Ваш IP временно заблокирован». Если вы слишком часто загружаете открытые страницы с одного сервера (города), то с некоторого момента все запросы на с вашего IP начнут просто игнорироваться. Вы получите пустую страницу с сообщением «Ваш IP временно заблокирован». Это означает, что можно забыть на 5-15 минут о доступе к этому серверу БК (городу). Нередко для сервиса это является катастрофой. Об этом необходимо позаботится заранее, как правило, на этапе построения архитектуры сервиса. Возможно надо будет встроить систему кэширования страниц, например, используя базу данных. Мой опыт показывает, что сервер стабильно воспринимает 5-7 запросов в минуту. Увеличение количества запросов ведет к блокировке IP.
Для закрытых страниц блокировка IP не производится. Но будьте благоразумны, не перегружайте серверы БК, им и так туго живется.
Первый и последний раз привожу код, в качестве примера доступа к БК. Дальше будут только намеки на лучшие решения. Что означает этот код, додумывайтесь сами. На этом первую часть повествования будем считать закрытой.
Помоги с тегами, пожалуйста=) Как скрывать текст под ссылками? т.е. при нажатию чтобы перекидывало на страницу дневника, где полный текст. Жава тут не пашет?
3. После того, как вы убеждены, что все отлично, то можно приступать к рисованию HTML кода сервиса. Мне больше импонирует FrontPage, но это дело вкуса. Прорисуйте весь сервис, запрограммируйте все java-скрипты. Вам наверняка понадобится руководство по DHTML.
Сразу рука мастера чувствуется!!! :)))))))))))))))))))))))
- не делайте объем загружаемой страницы слишком большой, пожалейте трафик пользователей угу, как раз рисование сайта в FrontPage это и есть экономия трафика :)))))))
4. Теперь осталось написать основной код, об этом мы будем говорить дальше. Вообще-то Perl более эффективный язык, но я использую PHP - поскольку Perl я не знаю :))))))))))
Несмотря на то, что тон комментария достаточно язвительный - отвечу на него. Во-первых, статья обозначена как "Начинающим ...", уровень читателя сразу обозначен. Во-вторых, я никогда не позиционировал себя как гуру в разработке Интеренет-сервисов, а уж тем более дизайна. В реальной работе мне с этим не приходилось сталкиваться. Поэтому пишу ровно со своей колокольни. В-третьих, Вы абсолютно правы с Perl я не знаком, хотя читаю его достаточно легко (все я зыки примерно похожи). Примерно также я мог сказать о PHP полтора года назад. На свете есть куча языков программирования, которых я не знаю, и только потому, что мне они были не нужны. Но мне захотелось написать клановые сервисы, и для этого я достаточно быстро выучил очередной (двадцатый или тридцатый) язык программирования.
В инфе у Вас я увидел предложения услуг "Создание сайтов, фирменных стилей, ...". Может быть мы увидим статью о том как надо правильно рисовать сайты, о сочетании цветов, стилях и прочее. Я бы сам с удовольствием прочитал.
П.С. FrontPage конечно дерьмо, но ставить и осваивать глюки других редакторов меня не тянет.
Во-первых, статья обозначена как "Начинающим ...", уровень читателя сразу обозначен
Довать советы не зная о чем идет речь, довольно глупое занятие, так как находясь в заблуждениях, вы ставите в заблуждение и других.
>Во-вторых, я никогда не позиционировал себя как гуру в разработке Интеренет-сервисов, а уж тем более >дизайна. В реальной работе мне с этим не приходилось сталкиваться. Поэтому пишу ровно со своей колокольни.
Будучи не гуру, пытаетесь учить чему-то?
> я достаточно быстро выучил очередной (двадцатый или тридцатый) язык программирования.
1) О выученности можно поспорить на что угодно 2) Хотелось бы перечень выученных языков, чтобы вас не считали пустословным.
> Может быть мы увидим статью о том как надо правильно рисовать сайты, о сочетании цветов, стилях и прочее. Я бы сам с удовольствием прочитал.
Платите деньги и в двухдневный срок будет статья, могу и уроки дать.
> П.С. FrontPage конечно дерьмо, но ставить и осваивать глюки других редакторов меня не тянет.
>Довать советы не зная о чем идет речь, довольно глупое занятие, так как находясь в заблуждениях, вы ставите в заблуждение и других. Если я где-то кого-то ввел в заблуждение - укажите. Буду премного благодарен. Если вы считаете, что я даю советы не зная о чем идет речь, то не читайте.
>Хотелось бы перечень выученных языков, чтобы вас не считали пустословным Краткий перечень выученных языков: как минимум пять ассемблеров включая для микроконтроллеров, С/С++, Pascal, PHP, SQL, Basic, Java, Prolog, Lisp, Fortran, Ada. Всех модификаций не перечисляю. Возможно еще какие-то, но было это давно, уже не помню всех.
>Платите деньги и в двухдневный срок будет статья, могу и уроки дать. Критиковать - бесплатно, а вот сделать, то только за деньги?
Если я где-то кого-то ввел в заблуждение - укажите. Буду премного благодарен.
Объясняю, фронт пейдж использыет для верстки таблицы, что не есть хорошо, табличнаяверстка тяжела как по объебу текста так и при создании таблицы в браузере. Следовательно этот метод не подходит для "- не делайте объем загружаемой страницы слишком большой, пожалейте трафик пользователей;" Чем не заблуждение?
Критиковать - бесплатно, а вот сделать, то только за деньги? Конечно, за критику нынче вообще спасибо говорить должны, так как критика стимулирует к развитию и совершенствованию. Если бы когдато не критиковали меня, то я наврятли бы смогла критиковать Вас сейчас.
слабо!
А ведь зная перечисленные языки, запомнить и научится таблицам стилей, мне кажется не так уж и тяжело, у меня на изучение таблиц стилей и div-овой верстке ушла всего одна ночь. Я не думаю что зная мощьный асм древний "Ада" и "лисп" вы не сможите в них разобратся.
Короче, если что, пиши, звони, спрашивай, подскажу что надо.
По поводу верстки таблицами - полностью согласен. Я использую сочетание, таблиц и CSS (таблиц стилей). По поводу FrontPage мы видимо говорим о разном, я использую его как редактор HTML текста и предварительный просмотр. Программирование и доводка продукта ведется естественно в Zend Studio. Но в нем не удобно просматривать результат.
А вот то, что я не упомянул Zend Studio в статье - это прокол. Видимо придется писать еще одну часть - о рабочем месте.
По поводу верстки на div'ах - пробовал, - не понравилось - долго.
П.С. FrontPage не удалю, т.к. во первых за него деньги плачены (как и за Zend Studio), во вторых он мне для работы нужен...
Гость БК
28-09-07 @ 03:09
Интересный у вас разговор пошел, изаините за не втемность, но не могли бы написать что, нибудь про FrameWork-и, свое отношение ну или какой на ваш взгляд самый удобный, интересуют исключительно касающиеся PHP
А я уже наверное динозавр? Все по-старинке хоумсайтом от сосиски (5-летней давности) пользуюсь... Как хтмл-редактор вполне достаточно, а остальное - ручками..
F L S
Если судить по постам, то автор чуть более программист чем Вы. Вопрос о перечне языков меня улыбнул.. Если понимаешь суть программирования - вопрос просто бессмысленный, опять таки автор прав.
Что касается верстки - таблицы рулили и рулить будут пока все не перейдут на XML, а дивы, цсс - как не были так и не будут чем-то стандартным и одинаковым для разных браузеров. Другое дело что таблицы тоже лучше ручками...
Alex Nomad Афтар, пешы исчо! Идея скролла хорошая, вмемориз типа..
Если начинающим понадобятся какие-то идейки или советы, тоже готов иногда подсказать по мере возможности.
Гость БК
19-05-09 @ 18:47
Ник
$login='Alex Nomad';
у меня при запросе оно энкодится в compress.zlib://http://emeraldscity.combats.ru/inf.pl?login=Alex+Nomad&short=1
Warning: file_get_contents() [function.file-get-contents]: HTTP request failed! HTTP/1.0 400 Bad Request on line 6
Warning: file_get_contents(compress.zlib://http://emeraldscity.combats.ru/inf.pl?login=L+Maximus&short=1) [function.file-get-contents]: failed to open stream: No error on line 6
Кто-то может обьяснить почему ники с пробелами не воспринимает, если бы ник был бы просто Alex, все бы открылось... Пробовал и заменять %20, не помогло.
Попробуй сначал сделать просто $url="http://emeraldscity.combats.ru/inf.pl?login={$login_encoded}&short=1"; $page=@file_get_contents($url);
Если скачается - проблема в zlib, если нет, - надо дальше копать. На первый взгляд проблем не вижу.
П.С. В совремсенных реалиях лучше использовать все-таки Curl - сейчас его ставят на сервера достаточно часто. http://scrolls.combats.com/community/~developers/445953.html